Role-Based Access Control (RBAC) এর কনফিগারেশন

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - MongoDB তে Security Management
144

MongoDB একটি NoSQL ডেটাবেস যা উচ্চ স্কেলেবল এবং নিরাপদ ডেটা ম্যানেজমেন্ট সিস্টেম হিসেবে পরিচিত। যখন অ্যাপ্লিকেশন বা ডেটাবেসে একাধিক ব্যবহারকারী কাজ করে, তখন ব্যবহারকারীদের নির্দিষ্ট অনুমতি এবং প্রবেশাধিকার নিয়ন্ত্রণ করা অত্যন্ত গুরুত্বপূর্ণ। এর জন্য MongoDB ব্যবহারকারীদের মধ্যে প্রবেশাধিকার নিয়ন্ত্রণের জন্য Role-Based Access Control (RBAC) ব্যবহার করে থাকে।

RBAC ব্যবহার করে MongoDB ডেটাবেসের নির্দিষ্ট রিসোর্স বা ডেটার ওপর ব্যবহারকারীদের নির্দিষ্ট অনুমতি নির্ধারণ করা হয়। এই কনফিগারেশন Java MongoDB ড্রাইভার ব্যবহার করে করা যেতে পারে।


RBAC কি?

RBAC (Role-Based Access Control) হল একটি নিরাপত্তা কৌশল যেখানে ব্যবহারকারীদের নির্দিষ্ট ভূমিকার ভিত্তিতে অনুমতি প্রদান করা হয়। MongoDB তে RBAC এর মাধ্যমে ব্যবহারকারীদের বিভিন্ন ধরনের ভূমিকা নির্ধারণ করা হয়, যেমন:

  • Read: ডেটাবেস থেকে ডেটা পড়ার অনুমতি।
  • ReadWrite: ডেটাবেসে ডেটা পড়া এবং লেখা।
  • DBAdmin: ডেটাবেস প্রশাসক হিসাবে পরিচালনা করার অনুমতি।
  • ClusterAdmin: MongoDB ক্লাস্টার পরিচালনা করার অনুমতি।

MongoDB এর RBAC সিস্টেম ব্যবহারকারীদের নীতি এবং নিরাপত্তা কনফিগারেশনকে সহজ করে তোলে, যেখানে প্রতিটি ব্যবহারকারী তাদের ভূমিকার ভিত্তিতে নিরাপদভাবে অ্যাক্সেস পায়।


MongoDB তে RBAC কনফিগারেশন

MongoDB তে RBAC কনফিগারেশনের জন্য প্রথমে আপনাকে একটি MongoDB রোল তৈরি করতে হবে এবং সেই রোলের সাথে অনুমতি নির্ধারণ করতে হবে। তারপর সেই রোল ব্যবহারকারীকে অ্যাসাইন করা হয়। নিচে Java MongoDB ড্রাইভার ব্যবহার করে RBAC কনফিগারেশন করার প্রক্রিয়া দেখানো হচ্ছে।

১. MongoDB সার্ভারে RBAC সক্রিয় করা

MongoDB সার্ভারে RBAC সক্রিয় করার জন্য, MongoDB সার্ভার শুরু করার সময় --auth অপশনটি ব্যবহার করতে হবে। এটি নিশ্চিত করবে যে MongoDB সার্ভার কেবলমাত্র অনুমোদিত ব্যবহারকারীদের অ্যাক্সেস দেবে।

mongod --auth --dbpath /data/db

এটি MongoDB সার্ভারে RBAC সক্রিয় করবে এবং ব্যবহৃত অ্যাক্সেস নিয়ন্ত্রণ পদ্ধতিকে সক্রিয় করবে।

২. রোল তৈরি করা

MongoDB তে নতুন রোল তৈরি করতে, আপনি db.createRole() কমান্ড ব্যবহার করতে পারেন। এখানে একটি উদাহরণ দেওয়া হলো যেখানে readWrite রোল তৈরি করা হয়েছে:

use admin
db.createRole({
  role: "readWriteRole",
  privileges: [
    {
      resource: { db: "myDatabase", collection: "" },
      actions: [ "find", "insert", "update", "remove" ]
    }
  ],
  roles: []
});

এখানে, readWriteRole রোলটি myDatabase ডেটাবেসে find, insert, update, এবং remove কাজ করার অনুমতি প্রদান করে।

৩. ব্যবহারকারী তৈরি এবং রোল অ্যাসাইন করা

ব্যবহারকারী তৈরি করার জন্য MongoDB তে db.createUser() কমান্ড ব্যবহার করা হয়। এরপর সেই ব্যবহারকারীকে একটি নির্দিষ্ট রোল দেওয়া হয়।

use myDatabase
db.createUser({
  user: "myUser",
  pwd: "password123",
  roles: [ { role: "readWriteRole", db: "myDatabase" } ]
});

এখানে, myUser ব্যবহারকারীকে readWriteRole রোল দেওয়া হয়েছে, যার মাধ্যমে সে myDatabase ডেটাবেসে ডেটা পড়া, লেখা, আপডেট এবং মুছে ফেলার অনুমতি পাবে।

৪. Java MongoDB ড্রাইভার ব্যবহার করে RBAC কনফিগারেশন

Java MongoDB ড্রাইভার ব্যবহার করে MongoDB সার্ভারে RBAC কনফিগারেশন করা যেতে পারে। এটি করার জন্য প্রথমে আপনাকে MongoClient তৈরির সময় অথেন্টিকেশন তথ্য পাস করতে হবে।

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;

MongoClientURI uri = new MongoClientURI("mongodb://myUser:password123@localhost:27017/myDatabase?authSource=myDatabase");
MongoClient mongoClient = new MongoClient(uri);

MongoDatabase database = mongoClient.getDatabase("myDatabase");

এখানে, myUser ব্যবহারকারী এবং password123 পাসওয়ার্ড ব্যবহার করে myDatabase ডেটাবেসে সংযোগ স্থাপন করা হচ্ছে।

৫. রোলের অধীনে কাজ করা

এখন, MongoDB ডেটাবেসের সাথে সংযুক্ত হয়ে আপনি নির্দিষ্ট রোলের অধীনে কাজ করতে পারবেন। যেমন, readWriteRole রোল পেলে আপনি ডেটাবেসে ডেটা পড়া এবং লেখার কাজ করতে পারবেন:

import com.mongodb.client.MongoCollection;
import org.bson.Document;

MongoCollection<Document> collection = database.getCollection("myCollection");

// ডেটা ইনসার্ট করা
Document doc = new Document("name", "John")
                .append("age", 30);
collection.insertOne(doc);

// ডেটা পড়া
Document query = new Document("name", "John");
Document result = collection.find(query).first();
System.out.println(result.toJson());

এখানে, myUser যদি readWriteRole রোলের অধীনে থাকে, তাহলে সে ডেটাবেসে ইনসার্ট এবং ফাইন্ড অপারেশন করতে পারবে।


MongoDB তে RBAC কনফিগারেশন ব্যবহার করে ব্যবহারকারীদের জন্য বিভিন্ন রোল তৈরি করা এবং তাদের নির্দিষ্ট অনুমতি প্রদান করা সম্ভব। Java MongoDB ড্রাইভার ব্যবহার করে, আপনি MongoDB সার্ভারে নিরাপত্তা এবং অ্যাক্সেস নিয়ন্ত্রণ কার্যকরভাবে কনফিগার করতে পারেন। এই কনফিগারেশন নিরাপত্তা বৃদ্ধি করে এবং ডেটাবেস অ্যাক্সেস ম্যানেজমেন্টকে সহজ করে তোলে।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...